package com.ruoyi.sales.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
        import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.sales.mapper.ZcStoreInfoMapper;
import com.ruoyi.sales.domain.ZcStoreInfo;
import com.ruoyi.sales.service.IZcStoreInfoService;

/**
 * 仓库信息Service业务层处理
 *
 * @author woo
 * @date 2024-04-08
 */
@Service
public class ZcStoreInfoServiceImpl extends ServiceImpl<ZcStoreInfoMapper, ZcStoreInfo> implements IZcStoreInfoService {
    @Autowired
    private ZcStoreInfoMapper zcStoreInfoMapper;

    /**
     * 查询仓库信息
     *
     * @param storeId 仓库信息主键
     * @return 仓库信息
     */
    @Override
    public ZcStoreInfo selectZcStoreInfoByStoreId(Long storeId) {
        return zcStoreInfoMapper.selectZcStoreInfoByStoreId(storeId);
    }

    /**
     * 查询仓库信息列表
     *
     * @param zcStoreInfo 仓库信息
     * @return 仓库信息
     */
    @Override
    public List<ZcStoreInfo> selectZcStoreInfoList(ZcStoreInfo zcStoreInfo) {
        return zcStoreInfoMapper.selectZcStoreInfoList(zcStoreInfo);
    }

    /**
     * 新增仓库信息
     *
     * @param zcStoreInfo 仓库信息
     * @return 结果
     */
    @Override
    public int insertZcStoreInfo(ZcStoreInfo zcStoreInfo) {
                zcStoreInfo.setCreateTime(DateUtils.getNowDate());
                zcStoreInfo.setDel((long) 0);
                zcStoreInfo.setStatus("0");
                zcStoreInfo.setTrueCount((long) 0);
                zcStoreInfo.setUntrueCount((long) 0);
            return zcStoreInfoMapper.insertZcStoreInfo(zcStoreInfo);
    }

    /**
     * 修改仓库信息
     *
     * @param zcStoreInfo 仓库信息
     * @return 结果
     */
    @Override
    public int updateZcStoreInfo(ZcStoreInfo zcStoreInfo) {
                zcStoreInfo.setUpdateTime(DateUtils.getNowDate());
        return zcStoreInfoMapper.updateZcStoreInfo(zcStoreInfo);
    }

    /**
     * 批量删除仓库信息
     *
     * @param storeIds 需要删除的仓库信息主键
     * @return 结果
     */
    @Override
    public int deleteZcStoreInfoByStoreIds(Long[] storeIds) {
        return zcStoreInfoMapper.deleteZcStoreInfoByStoreIds(storeIds);
    }

    /**
     * 删除仓库信息信息
     *
     * @param storeId 仓库信息主键
     * @return 结果
     */
    @Override
    public int deleteZcStoreInfoByStoreId(Long storeId) {
        return zcStoreInfoMapper.deleteZcStoreInfoByStoreId(storeId);
    }

    @Override
    public List<ZcStoreInfo> selectAllStockStore() {
        QueryWrapper<ZcStoreInfo> qw = new QueryWrapper<>();
        qw.eq("del",0).eq("status",0).eq("store_type",0);
        List<ZcStoreInfo> zcStoreInfos = zcStoreInfoMapper.selectList(qw);
        return zcStoreInfos;
    }

    @Override
    public List<ZcStoreInfo> selectAllOkStore() {
        QueryWrapper<ZcStoreInfo> qw = new QueryWrapper<>();
        // store_type 2是成品仓库
        qw.eq("del",0).eq("status",0).eq("store_type",2);
        List<ZcStoreInfo> zcStoreInfos = zcStoreInfoMapper.selectList(qw);
        return zcStoreInfos;
    }
}